Most modern networking systems transmit amounts of data between a source and destination by breaking large blocks of data into several smaller blocks, each of which can be more efficiently and reliably transported through the network than if the data were delivered as a single block. For example, large blocks of data generally consume more processing resources to deliver across the network. Consumers and designers of these systems typically desire high reliability and increased performance at a reasonable price. A commonly used technique for helping to achieve these goals is for these systems to provide multiple paths between a source and a destination. Packets of information are then dynamically routed and distributed among these multiple paths. It is typically more cost-effective and technically feasible to provide multiple slower rate links or switching paths, than to provide a single higher rate path. Such designs also achieve other desired performance characteristics. Furthermore, because there typically exists several physical and/or logical communication paths between a source node and a destination node, a large block of data can be divided into packets of smaller size, which can then be divided between the multiple routes and transmitted to the destination faster than if the large blocks were transmitted to the destination over the same link. When the individual packets arrive at the destination node, the smaller packets are reassembled to restore the large block of data into its original (pre-segmented) form.
When packets from a single stream are sent through such a packet switching system, they may arrive out of order at their destinations, such as an output port of a packet switching system. In this situation, the packets must be re-ordered. Similarly, when a packet is decomposed into multiple packets which are sent to a destination, the packet must be reassembled. In some systems, one or both resequencing and/or reassembly of packets might be required. The increasing rates of traffic to be sent through a packet switching system and the corresponding number of packets which must be resequenced and/or reassembled is resulting in higher demands on the resequencing and reassembly processes. In other words, the resequencing and/or reassembly processes must be performed at corresponding higher rates. However, it is not always possible for traditional methods and mechanisms to operate at these higher rates. For example, a traditional resequencing and/or reassembly mechanism might be limited by the bandwidth of memory used in the resequencing and/or reassembly processes.